进阶技巧与工具生态
引言
前两节我们掌握了提示词的原理和实战技巧。这一节回答两个实际问题:提示词工程还能往哪个方向深入? 以及有哪些工具和资源可以帮你持续提升?
你可能看到过一些说法:"2026年提示词工程已经过时了,Harness Engineering(约束工程)才是未来。" 这个说法只对了一半——提示词工程确实在进化,但它没有过时,反而变成了更大的体系的一部分。你前两节学的东西完全不会白费,只是后面还有更多可以探索的空间。
一、提示词工程的进化方向(了解即可)
2024-2026年,围绕"怎么让AI更好用"这件事,行业经历了三次认知升级:
| 阶段 | 核心问题 | 你在做什么 |
|---|---|---|
| Prompt Engineering | 怎么写好一句话让AI听懂? | 优化措辞、添加示例、思维链引导 |
| Context Engineering | 给AI什么上下文才能做出正确判断? | 写 CLAUDE.md、管理对话记忆 |
| Harness Engineering | 怎么为AI构建一个可靠的执行环境? | 配置工具权限、安全护栏、沙箱机制 |
这三个阶段不是替代关系,而是层层叠加。提示词工程是地基,上下文工程是框架,约束工程是装修——你不可能跳过地基直接装修。两个概念都有明确的出处:Context Engineering 由 Karpathy 在 2025 年初提出("Context Engineering 是新的 Prompt Engineering");Harness Engineering 由 HashiCorp 联合创始人 Mitchell Hashimoto 在 2026 年 2 月的文章中正式命名。2026 年圈子里流行一个干脆的公式:Agent = Model + Harness——模型只占一半,围绕它搭建的"马具"决定它能不能真正干活。
案例:OpenClaw 的提示词架构
OpenClaw(龙虾)是目前 GitHub star 数最高的开源 AI agent 项目——2026年3月3日以 25 万 star 超越 React 成为 GitHub 之最,截至 2026 年 11 月已约 39.4 万(2026-11-07 GitHub 核实)。它最值得研究的地方不是功能,而是系统提示的架构:不是一条写死的提示词,而是每次 agent 运行时动态组装。你问它一句"你好"都会消耗约 1.6 万 token,全部花在这些固定模块上:
对照三层工程,对应关系一目了然:Safety 安全护栏 + Sandbox 沙箱对应 Harness Engineering(可靠的执行环境);AGENT.md + MEMORY.md 对应 Context Engineering(上下文管理);固定模块里的指令本身对应 Prompt Engineering。三层工程在一个真实项目里就是这样融合的。
它的提示词写法本身也是范本。人格设定(PERSONALITY)遵循官方明确的评价标准,每条都有行为指导:have a take(有态度、不和稀泥)、skip filler(跳过废话)、be funny when it fits(该幽默的时候幽默)、call out bad ideas(发现烂想法直接说)。安全护栏只有三句话:不追求权限、不绕过监督、不尝试修改自己的安全约束——不是长篇大论的安全策略文档,简洁但准确。执行策略则是它能够连续运行几个小时不中断的秘密:收到可执行的请求立即行动、持续到完成或阻塞;工具返回结果不好就重试;任务完成之前先验证结果。这些正是我们平时要反复给模型补充的"叮嘱",人家直接写进了系统提示。
OpenClaw 的安全危机(致命三要素、Prompt注入)在第2章已详细分析,这里不重复。Claude Code 的 CLAUDE.md 也是同样的思路——它不只是"备忘录",而是在为AI定义一个完整的执行环境。
对你来说:不需要现在就去研究 Harness Engineering。把前两节学的提示词技巧用好,配合 CLAUDE.md 写清楚项目规范,已经能覆盖 90% 的日常需求。当你开始构建 AI 产品时,自然会碰到上下文管理和执行环境设计的问题,到时候再回头研究这些优质的提示词工程项目也不迟。
二、怎么持续学习提示词工程
2.1 官方指南(最权威、最实用)
| 资源 | 特点 | 推荐理由 |
|---|---|---|
| Anthropic 提示词最佳实践 | Claude 官方文档(原 docs.anthropic.com 已迁移至 platform.claude.com),清晰指令、多示例、XML 结构、思维链、Agent 系统全覆盖;2026 年还发布了博客版 Prompt engineering best practices,针对新模型重写了建议 | 你在用 Claude Code,这是最直接对应的 |
| OpenAI Prompt Engineering Guide | GPT 系列官方指南,六大战术策略 | 和 Anthropic 的指南互补,看两份对比着学效果最好 |
| Prompt Engineering Guide | DAIR.AI 出品,开源免费,从基础到高级的完整体系 | 最系统的免费学习资源 |
| 吴恩达《面向开发者的ChatGPT提示词工程》 | DeepLearning.AI 与 OpenAI 合出的免费短课,B站/YouTube 可看,一两个小时讲完 | 浅显易懂,通勤路上就能刷完,适合快速建立框架 |
2.2 社区(找灵感和模板)
| 平台 | 特点 | 怎么用 |
|---|---|---|
| FlowGPT | 100万+ 提示词,可在线测试效果,覆盖编程等30+领域 | 搜一个你正在做的任务,看别人怎么写的 |
| PromptHero | 200万+ 提示词,按模型分类,已支持中文搜索 | 适合找特定场景的提示词模板 |
| Awesome Prompt Engineering | GitHub 精选合集,论文+工具+基准测试 | 想深入了解原理时翻一翻 |
使用建议:不要直接复制社区提示词。更好的方式是找到 3-5 个类似的提示词,分析它们的结构(角色设定、任务描述、输出格式、约束条件),然后把结构套到自己的场景里。Awesome Prompt Engineering 里收录的很多内容你其实见过——Claude Code 里的部分 roles 和 skills 就出自这里,可以拿来即用,或让大模型改造后沉淀为自己的 Skill。
2.3 最有效的学习方式
看10篇教程不如动手10次。推荐这个循环:
- 选一个你今天正在做的真实任务
- 写一条提示词让AI完成
- 看输出哪里不满意
- 改提示词,再试一次
- 记下来"什么有效、什么没用"
坚持两周,你会形成自己的提示词直觉。
三、提示词测试工具:当你的提示词需要质量保证
日常开发不需要这些工具。但有两种情况值得引入:一是你在给用户开发带AI能力的系统(比如 RAG 知识库问答),提示词的有效性需要验证;二是提示词要做结构化数据操作,稳定性要求高——跑两遍没问题不等于稳定,必须多轮测试才能确认边界。此外,当提示词要分享给团队、或对AI输出质量有严格要求时,以下工具能帮你从"凭感觉"变成"靠数据"。
3.1 Promptfoo:像写单元测试一样测试提示词
GitHub 2.7万+ Star(2026-11-07 核实),156 家 Fortune 500 企业在用,目前提示词测试领域最成熟的开源项目(有开源版和商业版两条产品线,官网可直接体验 demo)。
它解决什么问题:
- "这条提示词在不同模型上哪个效果更好?" → 多模型并排对比(显示每条用例用的模型、测试文本、失败/成功案例)
- "改了提示词之后效果变差了吗?" → 回归测试
- "AI 输出有没有安全漏洞?" → 红队安全测试
快速上手:
# promptfooconfig.yaml — 一个最简配置
providers:
- openai:gpt-5.2
- anthropic:claude-sonnet-4-6
- deepseek:deepseek-chat # 国内端点直连,成本只有海外模型的零头
- ollama:qwen3-coder # 本地模型,完全免费
prompts:
- "用 Vue3 + TS 创建 {{component}},要求:{{req}}"
tests:
- vars:
component: "SearchInput"
req: "防抖 + 清空按钮 + 搜索建议"
assert:
- type: contains
value: "defineComponent"
- type: not-contains
value: "any"
yaml
npx promptfoo@latest eval # 运行评估
npx promptfoo@latest view # 查看 Web 报告
bash
跑评估前配置好 API Key 和请求地址即可(OpenAI 兼容端点都能接;DeepSeek 输出价约 $0.56-1.1/百万 token,闲时至高峰(2026-11-07 官网核实))。它支持多种断言类型:文本包含检查、正则匹配、JSON 验证、LLM 评审员(用 AI 评判输出质量)、响应时间阈值、成本阈值等。跑完之后在 Web UI 里多模型并排对比,每个断言标绿/标红,一目了然。
注意:2026年3月 Promptfoo 被 OpenAI 收购。开源版本(MIT许可)继续正常可用,且仍在活跃开发——2026年9月发布的 0.123.1 还新增了 Gemini 3.8 等 provider,对非 OpenAI 模型的支持没有收缩迹象;长期走向仍需关注。
项目地址:github.com/promptfoo/promptfoo
3.2 其他工具(按需了解)
| 工具 | 定位 | 什么时候需要 |
|---|---|---|
| DeepEval | Python pytest 风格的 LLM 评估 | 你的项目是 Python,喜欢写代码做测试 |
| Langfuse | 提示词版本管理 + 团队协作 | 多人协作编辑提示词、需要追踪使用成本 |
| PromptPerfect | 自动优化粗糙提示词 | 初学阶段,想看看"好提示词"长什么样 |
| Ragas | RAG 系统专项评估 | 你在构建检索增强生成系统 |
3.3 什么时候该用这些工具?
日常开发不需要。以下场景才值得引入:
- 提示词要分享给团队 → 用 Langfuse 做版本管理和协作
- 对AI输出有严格要求 → 用 Promptfoo 做自动化测试和回归检测
- 在构建面向用户的AI产品 → 用 Promptfoo 做安全测试(红队扫描)
- 刚开始学,想快速建立直觉 → 用 PromptPerfect 看看"优化前 vs 优化后"的区别
四、两个提示词优化 Skill
优化提示词有两种典型场景:
- 场景 A:你说一句话,AI 自动帮你把话说明白,然后直接执行,给你最终结果
- 场景 B:你说一句话,AI 帮你把话说明白,把优化后的提示词给你,你自己拿着去用
下面是两个可以直接复制使用的 Skill 模板。复制内容发给任何 AI(Claude、ChatGPT、豆包都行),就能用。如果使用 Claude Code,也可以保存到 .claude/skills/ 目录作为可调用的 skill(斜线命令的名称就是 frontmatter 里的 name,description 决定它什么时候被触发)。建议先按前面两节学的知识自己动手创建这两个 Skill 试一试,跑出来和预期不一致再回看下面的设计——对照着改,收获最大。
两个 Skill 的实际运行效果(都输入同一句话"帮我写一个 Vue3 的搜索框组件"):Skill A 会像 Plan 模式那样先反问收集需求(按钮长什么样、要不要搜索建议),确认后直接实施;Skill B 则先输出几个范围问题,你逐条回答(或直接说"使用推荐"),它最后产出一条结构完整的提示词——精通 Vue3 的工程师角色 + 明确的任务 + Requirements 清单 + Output format(单个 .vue 文件),复制发给任何模型都能用,也可以存成团队共用的提示词模板。
4.1 Skill A:自动优化并执行
用途:给一条粗糙的提示词,AI 自动补全缺失信息、优化措辞,然后直接执行输出结果。适合日常开发——你不想研究怎么写提示词,只想拿到好的输出。
---
name: prompt-auto-execute
description: 自动优化用户的粗糙提示词并直接执行输出结果。用户只需说一句话,AI 会先静默分析缺失信息,通过提问补全关键细节后执行。适合日常开发场景——不想研究怎么写提示词,只想拿到好的输出。触发场景:用户给出简短/模糊的开发需求,如"帮我写一个搜索框"、"做个登录页"。
---
# 自动优化并执行
你是一位提示词工程专家,同时具备全栈开发能力。
用户会给你一条粗糙的提示词。你需要:
1. **静默分析**这条提示词在以下 7 个维度的问题(不要输出分析过程):
- 清晰度:模糊词有哪些?(如"好一点"、"专业")
- 角色设定:是否缺少专业角色?
- 输出格式:是否没说想要什么格式?
- 上下文:技术栈、项目背景是否缺失?
- 约束条件:是否没说限制?(如不用 any、不用 emoji)
- 示例:是否没有参考?
- 完完整性:是否遗漏边界情况?
2. **判断信息是否充分,自行决定是提问还是直接执行:**
先读取项目 CLAUDE.md、用户偏好、上下文,尝试补全缺失信息。然后评估:
- **信息充分**(能合理推断出所有关键决策点)→ 直接执行
- **信息不充分**(功能范围、技术选型、样式方案等关键决策点无法推断)→ 提问补全
判断标准:如果你能自信地写出符合用户预期的结果,就执行;如果有多个合理方向且无法确定用户要哪个,就提问。
3. **提问流程**(使用 AskUserQuestion 工具):
提出 1-5 个问题,每个问题**必须给出推荐选项**(用"推荐"标注)。推荐选项基于以下优先级推断:
- 项目 CLAUDE.md 中的技术栈和规范
- 用户历史对话中的偏好
- 社区主流实践
**提问示例**(用户输入"帮我写一个Vue3的搜索框组件",项目上下文无法推断具体需求):
问题一:功能范围需要哪些?
- 防抖输入 + 清空按钮 + 搜索建议下拉(推荐)
- 仅基础输入框 + 清空按钮
- 完整版:防抖 + 清空 + 建议 + 键盘导航 + 无障碍
问题二:使用 TypeScript 还是 JavaScript?
- TypeScript + Composition API(推荐)
- JavaScript + Composition API
问题三:样式方案?
- Tailwind CSS(推荐)
- Scoped CSS
- CSS Modules
问题四:数据来源?
- API 请求(传入 URL,组件内 fetch)
- 本地数组(传入 options prop)
- 仅触发事件,由父组件处理数据(推荐)
等用户确认后再执行。
**重要规则:**
- AI 自行判断是提问还是直接执行,不强制提问,也不强制跳过
- 关键原则:能推断就执行,推断不了就问
- 优化过程不需要展示给用户,收集完信息后直接给结果
- 如果用户的意图明显是"优化提示词本身"而非"执行任务",转交 prompt-optimizer 处理
markdown
使用示例:
输入:帮我写一个 Vue3 的搜索框组件
AI 会先分析你的提示词,发现缺少关键信息,然后进入 Plan 模式,给你推荐选项:
这个搜索框组件,我需要确认几个点:
- 功能范围:需要哪些功能?(推荐:防抖输入 + 清空按钮 + 搜索建议下拉)
- 技术栈:TypeScript 还是 JavaScript?(推荐:TypeScript + Composition API)
- 样式方案:Tailwind CSS 还是自定义样式?(推荐:Tailwind CSS)
- 数据来源:搜索建议是 API 请求还是本地数据?
你只需选择或调整,AI 收集完信息后直接输出完整代码。
4.2 Skill B:优化输出提示词
用途:给一条粗糙的提示词,AI 通过反问帮你理清需求,然后输出一个优化后的提示词。适合你想获得一条高质量的提示词,以后反复使用或分享给团队。
---
name: prompt-optimizer
description: 提示词优化器。分析用户的提示词,通过反问找出模糊和缺失的部分,收集需求后输出优化后的提示词。注意:输出的是优化后的提示词本身,不是代码或执行结果。适合想获得高质量可复用提示词的场景——要反复使用、分享给团队、或构建AI工作流。触发场景:用户说"优化提示词"、"帮我改改这个prompt"、"这个提示词怎么写更好"、或意图明显是获取提示词而非执行任务。
---
# 提示词优化器
你是一位提示词工程专家,精通 Anthropic 官方最佳实践。你的任务是通过**纯文本反问对话**帮助用户优化提示词,最终输出一条结构完整、可复用的优化提示词。
## 关键区别
你的输出是**提示词本身**,不是代码、不是组件、不是执行结果。用户拿到的是一条可以复制到任何 AI 工具使用的专业提示词。
## 工作流程(分两轮对话完成)
### 第一轮:分析 + 反问
收到用户的提示词后,立即:
1. **输出分析结果**,直接告诉用户这条提示词在 7 个维度上的缺失情况:
- 清晰度:模糊词有哪些?(如"好一点"、"专业")
- 角色设定:是否缺少专业角色?
- 输出格式:是否没说想要什么格式?
- 上下文:技术栈、项目背景是否缺失?
- 约束条件:是否没说限制?
- 示例:是否没有参考?
- 完整性:是否遗漏边界情况?
直接指出哪些维度是空白、哪些勉强及格、哪些已有,不要用表格,用简短的文字列出。
2. **提出 3-5 个关键问题**,以纯文本形式直接跟在分析后面。问题要具体、可回答。每个问题给出推荐选项。
好的问题示例:
- "这个组件需要支持哪些用户交互?我建议至少包含防抖输入和清空按钮,还需要搜索建议下拉吗?"
- "用 TypeScript 还是 JavaScript?推荐 TypeScript + Composition API"
- "样式方案选哪个?Tailwind CSS / Scoped CSS / CSS Modules"
不好的问题示例:
- "你想怎么做?"
- "还有什么要求吗?"
**这一轮不要输出任何优化后的提示词,只做分析和提问。等用户回答。**
### 第二轮:输出优化后的提示词
收到用户回答后,输出优化结果。格式如下:
```
## 优化后的提示词
<role>你是一位精通 Vue3 + TypeScript 的前端工程师</role>
<task>用 Vue3 Composition API + TypeScript 创建一个 SearchInput 组件</task>
<requirements>
- 输入防抖(300ms)
- 清空按钮(右侧 X 图标)
- 搜索建议下拉(输入时显示匹配项)
- 支持键盘上下选择建议项,回车确认
- 样式使用 Tailwind CSS
</requirements>
<context>
搜索建议通过 props 传入一个 async 函数获取,
函数签名:(query: string) => Promise<string[]>
</context>
<output_format>
单个 .vue 文件,包含 template + script setup + style。
TypeScript 类型完整,不用 any。
</output_format>
```
在提示词后面附上简短的改动说明(2-5 条),解释为什么这样优化。
## 优化原则(自动应用,不向用户解释)
1. 用 XML 标签组织结构:`<role>`、`<task>`、`<requirements>`、`<context>`、`<output_format>`、`<constraints>`、`<examples>`
2. 说"要做什么"而非"不要做什么"
3. 关键约束加上原因说明
4. 开头加角色设定
5. 明确输出格式
6. 如适用,加入示例
## 重要规则
- **必须分两轮**:第一轮分析+提问,第二轮输出优化结果。不要一次输出最终版本
- **所有交互用纯文本**,不使用 Plan 模式、不使用 AskUserQuestion 工具、不使用任何交互式 UI 组件
- 反问不超过 5 个,聚焦最关键的缺失信息
- 如果用户给的提示词已经很完善,直接告诉 TA 哪里可以微调,不需要走完整流程
- 优化后的提示词必须是用户可以直接复制使用的完整版本,不是片段
- 如果提示词是中文,优化版也用中文;如果是英文,用英文
markdown
使用示例:
输入:帮我写一个 Vue3 的搜索框组件
AI 反问 3-5 个问题后,输出:
<role>你是一位精通 Vue3 + TypeScript 的前端工程师</role>
<task>用 Vue3 Composition API + TypeScript 创建一个 SearchInput 组件</task>
<requirements>
- 输入防抖(300ms)
- 清空按钮(右侧 X 图标)
- 搜索建议下拉(输入时显示匹配项)
- 支持键盘上下选择建议项,回车确认
- 样式使用 Tailwind CSS
</requirements>
<context>
搜索建议通过 props 传入一个 async 函数获取,
函数签名:(query: string) => Promise<string[]>
</context>
<output_format>
单个 .vue 文件,包含 template + script setup + style。
TypeScript 类型完整,不用 any。
</output_format>
xml
一句话变成有角色、有需求、有上下文、有输出格式的完整提示词,可以保存下来反复使用或分享给团队。
4.3 怎么选?
| 场景 | 用哪个 | 原因 |
|---|---|---|
| 日常开发,只想快速拿到好结果 | Skill A | 省事,说一句话就行 |
| 提示词要反复使用、分享给团队 | Skill B | 拿到可复用的高质量提示词 |
| 不确定怎么描述需求 | Skill B | 反问帮你理清思路 |
| 构建项目中的 AI 工作流 | Skill B | 提示词是基础设施,值得打磨 |
4.4 拆解一下:这两个Skill本身就是五大要素的示范
回头拆 Skill A/B 的 SKILL.md 结构,你会发现它们就是本章知识的完整应用:角色(提示词工程专家+全栈开发能力)、指令与流程(判断信息是否充分 → 读取项目 CLAUDE.md → 提问或执行)、上下文(项目规范、用户偏好、社区主流实践)、输出格式(Skill B 的 XML 结构化提示词)、约束(提问不超过5个、必须给推荐选项)。Skill A 的示例偏前端,改造成其他技术栈时只需替换中间的示例部分,框架不动。
再往外扩一步:如果这两个 Skill 想在团队内共享、统一维护,除了放 git 仓库,还可以封装成 MCP 服务(第5章会讲怎么建)——Skill 是个人工具,MCP 是团队基础设施,按共享范围选形态。
完整的 Anthropic 官方提示词指南:Prompting Best Practices
本章工具的详细调研报告(含完整配置示例、工具对比矩阵、红队测试说明),见
notes/04/resources/提示词优化工具深度调研.md;两个 Skill 的完整实现(可直接复制到.claude/skills/使用)和转写演示的配套实操材料,见notes/04/resources/目录。
↑